home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
bioinformatics.org
/
bioinformatics.org_software.tar
/
www.bioinformatics.org
/
download
/
ecell2
/
ecell220setup.exe
/
{app}
/
standard
/
SRCJ
/
Reactor.java
< prev
next >
Wrap
Text File
|
2002-05-09
|
14KB
|
456 lines
/**
* title: Reactor class (Reactor.java)<p>
* description : Reactor window class<p>
* Copyright (C) 1996-2001 Keio University <p>
* Copyright (C) 1998-2001 Japan Science and Technology Corporation (JST)<p>
* GNU General Public Licence <p>
* Division: Mitsui Knowledge Industry Co. Ltd. Bioscience division <p>
* Version : $Id: Reactor.java,v 1.3 2002/01/24 05:57:12 shiozawa Exp $ <p>
*/
package ecell;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import javax.swing.*;
import javax.swing.plaf.basic.*;
import java.lang.*;
import java.util.StringTokenizer;
import java.util.Vector;
/**
* Reactor window class
* @author XD.Zheng
* @version 1.0
* @since JDK1.2.2
*/
/*
public class Reactor extends JFrame implements ActionListener, AccessListener{
*/
public class Reactor extends ECell2Interface
{
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
JPanel jp11 = new JPanel();
JPanel jp12 = new JPanel();
JPanel jp121 = new JPanel();
JPanel jp122 = new JPanel();
JPanel jp123 = new JPanel();
JPanel jp13 = new JPanel();
JPanel jp31 = new JPanel();
JPanel jp32 = new JPanel();
JPanel jp33 = new JPanel();
JPanel jp34 = new JPanel();
JLabel label1 = new JLabel("Class name: ");
JLabel label2 = new JLabel("Michaelis UniUniReversibleReactor");
JLabel label3 = new JLabel("Entry name: ");
JLabel label4 = new JLabel();
JLabel label5 = new JLabel("Name : ");
JLabel label6 = new JLabel();
JLabel label7 = new JLabel("Activity :");
JLabel label8 = new JLabel(" 1693.86 ");
JButton buttonSwitch = new JButton("Show lists");
JButton buttonClose = new JButton("Close");
JLabel labelTitle1 = new JLabel("Parameter");
JLabel labelTitle2 = new JLabel("Substrate");
JLabel labelTitle3 = new JLabel("Product");
JLabel labelTitle4 = new JLabel("Catalyst");
JLabel labelTitle5 = new JLabel("Effector");
DefaultListModel model1 = new DefaultListModel();
DefaultListModel model2 = new DefaultListModel();
DefaultListModel model3 = new DefaultListModel();
DefaultListModel model4 = new DefaultListModel();
DefaultListModel model5 = new DefaultListModel();
JList list1 = new JList(model1);
JList list2 = new JList(model2);
JList list3 = new JList(model3);
JList list4 = new JList(model4);
JList list5 = new JList(model5);
JScrollPane jScrollPane1;
JScrollPane jScrollPane2;
JScrollPane jScrollPane3;
JScrollPane jScrollPane4;
JScrollPane jScrollPane5;
Border border1;
/**
* Reactor window number
*/
int rctCode =-1;
/**
*EntryName
*/
String entryName ="";
/**
*Name
*/
String name = "";
/**
*ClassName;
*/
String className;
/**
*CtrollorPanel
*/
//MainWindow window;
/**
*Timer
*/
//Timer timer = new Timer(200,this);
/*
* Constructor
* @param code Substance number
* @param entryName entryName
* @param name Name
* @param className className
* @param window CtrollorPanel
*/
public Reactor(int code ,String entryName,String name,String className, MainWindow window) {
// 2002.4 akira shiozawa
super( window );
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
this.entryName= entryName;
this.name = name;
this.window = window;
this.rctCode = code;
this.className=className;
jbInit();
setLists();
// 2002.4 akira shiozawa
window.addAccessListener( this );
//timer.start();
}
/**
* Initialization
* @return void
*/
public void jbInit(){
this.setResizable(true);
border1 = BorderFactory.createEmptyBorder();
//this.setSize(new Dimension(345, 180));
this.setSizeAndLocation(new Dimension(345, 180), new Point(150, 100));
//this.setTitle(entryName );
this.setTitle( "Reactor: " + entryName );
label2.setText(className);
label4.setText(entryName);
label6.setText(name);
buttonClose.addActionListener(this);
buttonSwitch.addActionListener(this);
jp11.setLayout(new FlowLayout(0,3,0));
label8.setFont(new java.awt.Font("SansSerif", 0, 12));
label8.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.white,Color.white,new Color(142, 142, 142),new Color(99, 99, 99)));
jp12.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.white,Color.white,new Color(142, 142, 142),new Color(99, 99, 99)));
jp12.setPreferredSize(new Dimension(338, 55));
jp13.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.white,Color.white,new Color(142, 142, 142),new Color(99, 99, 99)));
label1.setFont(new java.awt.Font("Serif", 1, 12));
label3.setFont(new java.awt.Font("Serif", 1, 12));
label5.setFont(new java.awt.Font("Serif", 1, 12));
jp11.setMinimumSize(new Dimension(330, 150));
jp2.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.white,Color.white,new Color(142, 142, 142),new Color(99, 99, 99)));
list1.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.white,Color.white,new Color(178, 178, 178),new Color(124, 124, 124)));
jp3.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.white,Color.white,new Color(142, 142, 142),new Color(99, 99, 99)));
list2.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.white,Color.white,new Color(178, 178, 178),new Color(124, 124, 124)));
list3.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.white,Color.white,new Color(178, 178, 178),new Color(124, 124, 124)));
list4.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.white,Color.white,new Color(178, 178, 178),new Color(124, 124, 124)));
list5.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.white,Color.white,new Color(178, 178, 178),new Color(124, 124, 124)));
jp1.setPreferredSize(new Dimension(338, 177));
jp11.add(buttonSwitch);
jp11.add(buttonClose);
jp121.setLayout(new FlowLayout(0,5,0));
jp121.add(label1);
jp121.add(label2);
jp122.setLayout(new FlowLayout(0,5,0));
jp122.add(label3);
jp122.add(label4);
jp123.setLayout(new FlowLayout(0,5,0));
jp123.add(label5);
jp123.add(label6);
jp13.setLayout(new FlowLayout(0,5,10));
jp13.add(label7);
jp13.add(label8);
label8.setPreferredSize(new Dimension(150,30));
jp12.setLayout(new GridLayout(3,1,0,0));
jp12.add(jp121);
jp12.add(jp122);
jp12.add(jp123);
jp1.setLayout(new BorderLayout());
jp1.add(jp11,"North");
jp1.add(jp12,"Center");
jp1.add(jp13,"South");
this.getContentPane().add(jp1,"West");
jp2.setLayout(new BorderLayout());
jp2.add(labelTitle1,"North");
jScrollPane1= new JScrollPane(list1);
jScrollPane1.setPreferredSize(new Dimension(150,157));
jp2.add(jScrollPane1,"Center");
jp31.setLayout(new BorderLayout());
jp31.add(labelTitle2,"North");
jScrollPane2= new JScrollPane(list2);
jScrollPane2.setPreferredSize(new Dimension(110, 107));
jp31.add(jScrollPane2,"Center");
jp32.setLayout(new BorderLayout());
jp32.add(labelTitle3,"North");
jScrollPane3= new JScrollPane(list3);
jScrollPane3.setPreferredSize(new Dimension(110, 107));
jp32.add(jScrollPane3,"Center");
jp33.setLayout(new BorderLayout());
jp33.add(labelTitle4,"North");
jScrollPane4= new JScrollPane(list4);
jScrollPane4.setPreferredSize(new Dimension(110, 107));
jp33.add(jScrollPane4,"Center");
jp34.setLayout(new BorderLayout());
jp34.add(labelTitle5,"North");
jScrollPane5= new JScrollPane(list5);
jScrollPane5.setPreferredSize(new Dimension(110, 107));
jp34.add(jScrollPane5,"Center");
jp3.setLayout(new GridLayout(1,4,5,0));
jp3.add(jp31);
jp3.add(jp32);
jp3.add(jp33);
jp3.add(jp34);
}
/**
* Make the ListModel.
* @return void
*/
private void setLists(){
String test="";
try{
String[] lists = window.df.getReactorSpce(rctCode);
for(int i=0;i<4;i++){
StringTokenizer st = new StringTokenizer(lists[i],"\n");
while (st.hasMoreTokens()) {
test=st.nextToken();
switch(i){
case 0:
model2.addElement(test);
break;
case 1:
model3.addElement(test);
break;
case 2:
model4.addElement(test);
break;
case 3:
model5.addElement(test);
break;
}
}
}
}catch(Exception ex){
window.messageWindow.setErrorMessage( ex );
}
String[] paramNames=null;
try{
paramNames=window.df.getReactorParamName(rctCode);
}catch(Exception ex){
window.messageWindow.setErrorMessage( ex );
}
int nameNum= paramNames.length;
if(nameNum!=0){
double[] paramValues = new double[nameNum];
try{
window.df.getReactorParamValue(rctCode,paramValues);
}catch(Exception ex){
window.messageWindow.setErrorMessage( ex );
}
for(int i=0;i<nameNum;i++){
model1.addElement(paramNames[i] + " : " + paramValues[i]);
}
}
}
public void accessJni( MainWindow win )
{
setRunningFlag( true );
this.getReactorData();
setRunningFlag( false );
}
private void getReactorData()
{
if(rctCode>=0)
{
int count = window.count;
try
{
double value = window.df.getReactorData( count, rctCode );
label8.setText(" "+ getDoubleValue( value ) );
}
catch(Exception ex)
{
window.messageWindow.setErrorMessage( ex );
}
}
}
/**
* Processing of ActionListener event
* @param e ActionEvent
* @return void
*/
public void actionPerformed(ActionEvent e) {
if(e.getSource()== buttonClose){
exit_actionPerformed();
}
/**
else if(e.getSource()==timer){
if(rctCode>=0){
int count = window.count;
try{
label8.setText(" "+ getDoubleValue(window.df.getReactorData(count,rctCode)));
}catch(Exception ex){
ex.printStackTrace();
}
}
}
**/
else if(e.getSource()== buttonSwitch){
if (buttonSwitch.getText().equals("Show lists")){
this.setSize(new Dimension(500,300));
this.getContentPane().add(jp2,"East");
this.getContentPane().add(jp3,"South");
repaint();
this.pack();
buttonSwitch.setText("Hide lists");
}else if(buttonSwitch.getText().equals("Hide lists")){
this.setSize(new Dimension(345,180));
this.getContentPane().remove(jp2);
this.getContentPane().remove(jp3);
repaint();
this.pack();
buttonSwitch.setText("Show lists");
}
}
}
/**
* Override to exit when the window is closed.
* @param e WindowEvent
* @return void
*/
/*
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
exit_actionPerformed();
}
}
*/
/**
* Exit
* @return void
*/
public void exit_actionPerformed(){
//timer.stop();
// 2002.4. akira shiozawa
window.removeAccessListener( this );
try{
window.df.setReactorState(rctCode,-1);
}catch(Exception ex){
window.messageWindow.setErrorMessage( ex );
}
this.setVisible(false);
/**
Vector vr = window.vReactor;
for(int i=0;i<vr.size();i++){
if(this==vr.elementAt(i)){
vr.remove(i);
//this.dispose();
}
}
**/
this.dispose();
}
/**
* Convert Double value to suitable String one.
* @param vaule Double data
* @return Converted String
*/
public String getDoubleValue(double value){
int dotIndex=-1;
int eIndex=-1;
String str=String.valueOf(value);
int len=str.length();
if(len<=8) return str;
dotIndex=str.indexOf(".");
eIndex=str.indexOf("E");
if(eIndex==-1){
if(dotIndex==-1){
return str;
}else if(dotIndex==7){
return str.substring(0,9);
}else if(dotIndex<7){
return str.substring(0,8);
}else if(dotIndex>7){
return str.substring(0,dotIndex);
}
}else if(eIndex<=7){
return str;
}else{
return (str.substring(0,7)+str.substring(eIndex,len));
}
return "";
}
}